A virtual machine monitor (VMM), also known as a hypervisor, is a mechanism for virtualizing hardware computing resources, allowing multiple operating systems (known as guests) to run concurrently on a host processor. A VMM may present to the guest operating systems a virtual operating platform and may manage the execution of the guest operating systems.
There are two forms of VMMs. A type 1 VMM may run directly on processor hardware, controlling the hardware to manage guest operating systems. In this case, a guest operating system may therefore run on a level above the VMM. A type 2 VMM may run within a conventional operating system environment. Such a VMM may therefore operate at a second software level, above the hardware and above the operating system. A guest operating system may therefore run at a third level in this setting.
Currently, a type 1 VMM may be launched in one of three ways. First, such a VMM may be launched prior to booting the operating system, using a custom boot strap process. Second, a type 1 VMM may be launched early in the boot phase by the operating system itself. This may involve direct access to operating system's core data structures, which in turn may require a variety of security permissions. This approach may require an operating system that is specially designed to support the launch of a type 1 VMM. Third, a type 1 VMM may be launched by first modifying one or more core operating system data structures without knowledge of the operating system. This represents an unconventional approach not envisioned by operating system designers. Moreover, this approach may result in significant instability. A computer system in such a situation may be susceptible to failure, particularly in the event of operating system changes or updates.
As a result, there is currently no solution that safely allows the launch of a type 1 VMM after an operating system has been enabled.
In the drawings, the leftmost digit(s) of a reference number identifies the drawing in which the reference number first appears.